{"componentChunkName":"component---node-modules-rocketseat-gatsby-theme-docs-core-src-templates-docs-query-js","path":"/compilation","result":{"data":{"mdx":{"id":"914f5bba-2142-51d1-b9f0-a8e2f18e7ba7","excerpt":"The project utilizes  hardhat  as its development pipeline tool, containing an array of tests and scripts coded in TypeScript. To compile the project, the…","fields":{"slug":"/compilation/"},"frontmatter":{"title":"Compilation","description":"Includes the compilation instructions that were followed as well as any issues that were identified by the compiler itself.","image":null,"disableTableOfContents":null},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Compilation\",\n  \"description\": \"Includes the compilation instructions that were followed as well as any issues that were identified by the compiler itself.\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"The project utilizes \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"hardhat\"), \" as its development pipeline tool, containing an array of tests and scripts coded in TypeScript.\"), mdx(\"p\", null, \"To compile the project, the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"compile\"), \" command needs to be issued via the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"npx\"), \" CLI tool to \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"hardhat\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"npx hardhat compile\\n\")), mdx(\"p\", null, \"The \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"hardhat\"), \" tool automatically selects Solidity version \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"0.8.22\"), \" based on the version specified within the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"hardhat.config.ts\"), \" file.\"), mdx(\"p\", null, \"The project contains discrepancies with regards to the Solidity version used as the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pragma\"), \" statements of the contracts are open-ended (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"^0.8.0\"), \").\"), mdx(\"p\", null, \"We advise them to be locked to \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"0.8.22\"), \" (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"=0.8.22\"), \"), the same version utilized for our static analysis as well as optimizational review of the codebase.\"), mdx(\"p\", null, \"During compilation with the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"hardhat\"), \" pipeline, no errors were identified that relate to the syntax or bytecode size of the contracts.\"), mdx(\"p\", null, \"To note, the compiler version utilized makes use of the Shanghai target EVM and thus will introduce the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"PUSH0\"), \" opcode which is incompatible with certain Layer-2 chains.\"), mdx(\"p\", null, \"We advise the Astrolab DAO team to evaluate whether the chains they wish to deploy their contracts to properly support the operation code when they intend to deploy so as to avoid any deployment failures and thus waste of resources.\"));\n}\n;\nMDXContent.isMDXComponent = true;","headings":[]}},"pageContext":{"slug":"/compilation/","prev":{"label":"Scope","link":"/scope"},"next":{"label":"Static Analysis","link":"/static-analysis"}}},"staticQueryHashes":["1954253342","2328931024","2501019404","973074209"]}